# Copyright (c) 2024 Microsoft Corporation.
# Licensed under the MIT License

"""TableEmitter protocol for emitting tables to a destination."""
from typing import Protocol,Optional,Tuple,Dict,Union
from pathlib import Path
import pandas as pd


class TableEmitter(Protocol):
    """TableEmitter protocol for emitting tables to a destination."""
    def get_last_emitted_info(self) -> Optional[Dict[str, Optional[Union[str, Path]]]]:
        """Emit a dataframe to storage."""
    async def emit(self, name: str, data: pd.DataFrame) -> None:
        """Emit a dataframe to storage."""
   